﻿#ifndef SYSDEF_H
#define SYSDEF_H

#include <afxtempl.h>

typedef struct tagSysConfig
{
	char   szTitle[128];

	int  nTcpListenPort;
	int  nLocalUdpPort;

	int  nQueryDelayTimes;

	int  nSerialPortCount;

	char szLed_Rules[MAX_PATH];
	char szLed_File[MAX_PATH];
	char szJson_File[MAX_PATH];

	char szSys_Path[MAX_PATH];
	char szModule_Name[MAX_PATH];
	char szModule_Path[MAX_PATH];
	char szLed_Path[MAX_PATH];

	char szINI[MAX_PATH];

	BOOL  bLogMsg; //
};

typedef CList<CString, CString&> tagStringList;

typedef struct tagTip_Info
{
	HWND hWnd;
	char szTime[32];
	char szInfo[32 * 1024];
};

typedef CList<tagTip_Info, tagTip_Info&> tagTip_InfoList;

typedef struct tagBMP_INFO
{
	CRect   rc;
	HBITMAP hBmp;
	CBitmap cBmp;  //
	CDC     dc;   //DC
	BITMAPFILEHEADER bmfh;
	BITMAPINFO bmi;
	BYTE    *pBits;
};

typedef struct tagJson_Key_Value
{
	char szKey[32];
	char szValue[2048];
}JSON_KEY_VALUE;

/*
subCenter		数值		网管设备编号：42010201（8位）
cmsCode		字符串		情报板编号：123456789012（12位）
operator		字符串		操作人：XXX
sendTime		字符串		发送时间“YYYY-MM-DD HH:MM:SS”
content		字符串		发送内容：欢迎行驶高速公路
align		数值		对齐方式 1401：居左 1402：居中 1403：居右
delay		数值		驻留时间（秒）
transition		数值		播放方式 1301：立即显示 1302：上移 1303：下移 1304：左移 1305：右移 1306：滚屏显示
font		数值		字体 1701：宋体 1702：黑体
fontSize		数值		字体大小 1601：16 1602：32 1603：48 1604：64 1605:72
fontColor		数值		字体颜色1501：绿色1502：红色1503：黄色 1504：蓝色1505：白色
*/
typedef struct tagProg_Info
{
	char szSubCenter[16];
	char szCmsCode[16];
	char szOperator[32];
	char szSendTime[32];
	char szContent[256];
	int  nAlign;
	int  nDelay;
	int  nTransition;
	int  nFontType;
	int  nFontSize;
	int  nFontColor;

	char szListItem[256];
};

typedef struct tagLed_Rule
{
	char szCms_Code[32];
	int nCard_Type; //控制卡类型：1.换行通过坐标确定行起始位置，2.换行通过空格确定（换行后文字位置同第一行位置）
	int nComm_Type; //通讯方式：1.Udp通讯，2.串口通讯(控制卡端口为串口号)
	char szLed_ip[32];
	int nUdp_Port; //通讯端口/串口
	int nLed_Width;
	int nLed_Height;
	int nFont_Size[8];
	int nLine_MaxCharCount; //单行文字个数
	int nPageCount;
};


typedef struct tagPage_Info
{
	int nPage_Count;
	int nLine_Height;
	int nFont_Size;
	int nFont_Color;
	int nLine_Count;
	char szLine_Text[8][64];
};


typedef struct tagPlay_Item
{
	int nPlay_Type;
	char szSponsor_Name[64];
	char szPlay_File[256];
};


#endif